// 【管理用户数据相关】
import { defineStore } from 'pinia'
import { loginAPI } from '@/apis/userAPI'
import { ref } from 'vue'
import { useCartStore } from './cartStore'
import { mergeCartAPI } from '@/apis/cartAPI'
export const useUserStore = defineStore('user',()=>{
     // 获取购物车数据
     const cartStore = useCartStore()
     
    // 1. 定义管理用户数据的state
    const userInfo = ref({})
    // 2. 定义获取接口数据的action函数
    const getUserInfo = async ( {account,password} ) =>{
        const res = await loginAPI({account,password})
        userInfo.value = res.result
         // 合并购物车
    await mergeCartAPI( cartStore.cartList.map( item =>{
        return {
            skuId: item.skuId,
            select: item.selected,
            count: item.count
        }
    }))
    // 获取购物车数据
    cartStore.updateNewList()
    }
    //清除用户信息
    const clearUserInfo = () =>{
        userInfo.value = {}
        cartStore.clearCart()
    }
    // 3. 以对象格式返回state和action
    return {
        userInfo, getUserInfo,clearUserInfo
    }
},
{
    persist: true
})